import static org.junit.Assert.*;

import java.util.*;

import org.junit.Before;
import org.junit.Test;


/*
 * Este test pretende comprobar que el método cuentaPv de la clase PuertoRico.java
 * funciona correctamente. El problema es que el test no puede ejecutarse correctamente,
 * poniendo de manifiesto (salvo que me encuentre en un error) las incongruencias e 
 * incompatibilidades entre la clase Factory y el resto del código. Un ejemplo de esto
 * es que, en unas partes del código, Edificios se define como un Set y en otras (la clase
 * Constructor) se define como un LinkedList, lo que me genera los primeros errores en 
 * el log del test. No obstante, es posible que el test esté simplemente mal diseñado y,
 * por consiguiente, los errores del log vengan de esta mala iplementación.
 */

public class ZZTestCuentaPV01 {
	
	
	
	public Jugador jug = new Jugador("ConanElBarbaro");

	@Before
	public void setUpBeforeClass() throws Exception {
		
		Fortaleza fortaleza = new Fortaleza();
		Fabrica fabrica = new Fabrica();
		Cofradia cofradia = new Cofradia();
		
		jug.addEdificio(fortaleza);
		jug.addEdificio(fabrica);
		jug.addEdificio(cofradia);
	}
	
	@Test
	public void testCuentaPv() {
		assertTrue (cuentaPv(jug)==11);
	}

	private	int cuentaPv (Jugador jugador){
		Edificios ed;
		Iterator<Edificios> edificiosIt = jugador.getEdificios().iterator();
		int res=jugador.getPV();
		while (edificiosIt.hasNext()){
			ed = edificiosIt.next();
			res = res + ed.getPv(); 
		}
		
		return res;
	}
	
}
